import glob
import json
import os.path
from modules import scripts

from scripts.file_utils import read_file, read_file_as_json

# 临时文件目录
TEMP_DIR = os.path.join(os.getcwd(), "tmp")
# prompt 所在目录
PROMPT_DIR = os.path.join(scripts.basedir(), "prompt")
# 配置文件
CONFIG_DIR = os.path.join(scripts.basedir(), "config.json")
# 预设尺寸
PRESET_SIZE_DIR = os.path.join(scripts.basedir(), "presetSize.json")


def load_config():
    text = read_file(CONFIG_DIR)
    with open(os.path.join(TEMP_DIR, 'zjPromptConfig.json'), 'w', encoding='utf-8') as file:
        file.write(text)


def load_prompt():
    # 获取当前目录下所有 .json 文件的路径列表
    json_files = glob.glob(os.path.join(PROMPT_DIR, '*.json'))
    # 用于存储合并后的数据
    prompts = []
    # 遍历所有 .json 文件
    for file_path in json_files:
        # 读取当前 JSON 文件的内容
        item = read_file_as_json(file_path)
        prompts.append(item)

    # 将合并后的数据转换为 JSON 字符串，缩进为 2 个空格，允许非 ASCII 字符
    prompt_json = json.dumps(prompts, indent=2, ensure_ascii=False)
    # 将 JSON 数据写入文件 'tags.json' 中，以 UTF-8 编码格式
    with open(os.path.join(TEMP_DIR, 'zjPrompt.json'), 'w', encoding='utf-8') as file:
        file.write(prompt_json)


def load_preset_size():
    text = read_file(PRESET_SIZE_DIR)
    with open(os.path.join(TEMP_DIR, "zjPromptPresetSize.json"), 'w', encoding='utf-8') as file:
        file.write(text)
